package com.jhy.ws.domain;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jhy.core.domain.BaseEntity;
import com.jhy.ws.constants.WebSocketConstant;
import com.jhy.ws.enums.IsReadEnum;
import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * webSocket消息记录业务对象
 *
 */

@Data
@TableName("ws_msg_record")
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class WsMsgRecord extends BaseEntity {

    /**
     * 消息id
     */
    @TableId(value = "msg_id", type = IdType.AUTO)
    private Long msgId;

    /**
     * 消息发送方
     */
    @NotNull(message = "消息发送方不能为空")
    private Long fromUserId;
    /**
     * 消息发送方
     */
    @NotNull(message = "消息发送方不能为空")
    private String fromUser;

    /**
     * 目标类型
     */

    @NotBlank(message = "目标类型不能为空")
    private String targetType;

    /**
     * 目标接收者
     */
    @NotNull(message = "目标接收者不能为空")
    private String target;
    /**
     * 目标接收者
     */
    @NotNull(message = "目标接收者不能为空")
    private String targetId;

    /**
     * 消息内容
     */
    @NotBlank(message = "消息内容不能为空")
    private String msg;

    /**
     * 消息类型
     */
    @NotBlank(message = "消息类型不能为空")
    private String msgType =WebSocketConstant.MessageType.TEXT.name();

    /**
     * 是否已读（0未读 1已读）
     */
    @NotNull(message = "是否已读（0未读 1已读）不能为空")
    private Integer isRead = IsReadEnum.UN_READ.getValue();


    /**
     * 事件类型
     */
    @NotNull(message = "事件类型 EventTypeEnum ")
    private Integer eventType;



}
